home *** CD-ROM | disk | FTP | other *** search
- -----
- BRIEF
- -----
- Here is release 2.0 of my Amiga port of the Sound Tools kit,
- public release 5, including SOX, the Sound Exchange. The
- original Unix archive is available via anonymous ftp from
- wuarchive.wustl.edu, in the directory /usenet/alt.sources/articles.
- (I'm not sure what the article numbers for this latest release are,
- but they can be found with archie.) I have placed all my
- modifications of the Unix code within #ifdef delimiters, so the
- Amiga code should still compile under BSD or SysV using the
- original Makefile ("Makefile.unix"). Use the "Makefile.amiga" to
- compile for AmigaDOS, or use the supplied shell script "Maker" if
- you don't own a compliant "make" program. "Maker" can be found in
- the "Amiga" directory.
-
-
- ---------
- COMPILING
- ---------
- Using "make", "dmake", or "lmk":
- 1. Copy "Makefile.amiga" to "Makefile", "dmakefile", or "lmkfile".
- 2. Edit the Makefile according to your setup and preferences.
- a. change compiler options to suit your compiler. CC should
- equal the name of the program you use to compile (e.g.,
- cc for Manx, dcc for DICE, lc for Lattice/SAS).
- b. change O to any flags you use for things like optimization
- or any other specific methods you want implemented by the
- compiler.
- c. ar is a program which provides library maintenance under
- Unix. It usually requires ranlib, too. Since you have
- an Amiga, you won't need to deal with it. Lattice
- this little dealie called "oml" which archives object
- modules as compiler libs, so if you have Lattice set AR
- to "oml" and AR_ARGS to "a" (see your documentation for
- more oml details). If you don't own Lattice, you might or
- might not have an object module librarian--I'm not
- familiar with any of the other Amiga C compilers. There
- is, however, a freely distributable librarian available
- over the Internet somewhere, and probably on many BBSes,
- too. I believe it's by Mike Meyer. If you use this
- program, set AR and AR_ARGS according to its
- documentation.
- d. RM is the name of a program to delete files you no longer
- need after compile time. Set it to whatever you use to
- delete things. I've commented out a few lines of the
- Makefile since c:delete gags if you ask it to delete a
- file that doesn't exist, but if your RM handles
- nonexistent files, feel free to uncomment these.
- e. WILDCARD is a symbol or symbols that your system will
- recognize as representing any sequence of characters,
- including any subsequence of no characters. The #?
- pair won't work, though, since '#' is the symbol in make
- for a comment. '*' works on my system, but that's
- probably because I use csh as my shell.
- f. If you have a 68881 or a 68882 math coprocessor installed
- in your Amiga (as does every A3000), you'll probably want
- to make the FPU version of sox. Use of the FPU for
- floating-point intensive operations can speed the
- program's execution on some effects by over 400%. Remove
- the hash marks in lines 50 and 51 of the Amiga Makefile to
- create the FPU version. Note that the FPU binary is
- smaller than the non-FPU version, as it contains no
- library code to emulate heavy-duty math functions. You
- shouldn't need to place hashes in lines 46-47, but if your
- "make" fails, give it a try.
- 3. To make the sox binary according to the specifications in the
- Makefile, enter "make" or "make sox" into your shell (I dearly
- hope no one's still using a vanilla CLI...). To make only the
- Sound Tools library, enter "make libst.lib". If you didn't
- change RM and uncomment the line containing "$(RM)", you may need
- to delete any existing libst.lib files in your current directory.
- To remove all the ugly object files that you don't need any more,
- enter "make clean".
- 4. Wait for your command prompt.
- 5. Install the new sox binary wherever you keep things like that.
-
- To compile without a good make:
- 1. Open a DOS shell, if you don't use it regularly. (I can't blame
- you if you don't, but I can blame you if you made it hard to get
- get back to it in emergencies.)
- 2. Follow the instructions for using "Make" above, but ignore
- references to Make and Makefile per se, and replace occurences
- of "make" in shell commands with "execute maker".
-
-
- -----------
- AMIGA NOTES
- -----------
- The files "sox.cat" and "st.cat" are ANSI versions of the [n,t,pt]roff
- files sox.man ans st.man, generated with my pseudo-port of nroff for
- the Amiga. I don't have appropriate tmac files, however, so I modified
- these to be compatible with my nroff. The corresponding Amiga nroff
- files are called "sox.nro" and "st.nro", for lack of a better suffix.
- To regenerate the ANSI file in this archive, use "nroff -man
- [sox,st].man".
-
- Since "sox.cat" and "st.cat" are just ANSI copies of the Unix manuals,
- they describe the Unix version of SOX and Sound Tools specifically.
- Following are peculiarities of the Amiga version.
-
- - PIPE: and U. Dominik Mueller's csh pipes should work; however,
- FIFO: and other non-seekable pipes don't. I don't know whether
- pipes work on other popular shells as I don't use them.
- - The Amiga version of sox incorporates a version string, so typing
- "version sox" should tell you what version of the binary you have.
- The Amiga release number will always be between 3 and 3.999...
- higher than that of the latest public release; thus Amiga SOX 2.0
- is a port of Unix SOX Release 5, and Amiga SOX 2.1 would be
- an enhancement to Amiga SOX 2.0, with no new Unix code released.
- - If you want to keep libst.lib, you'll have access to most of sox's
- functions through a compiler library as documented in the files
- "st.man" (troff) and "st.man.ascii" (ascii). Put this in your
- lib: directory if you're interested in it.
- - "tests.sh", the SOX program test script, naturally doesn't work on
- the Amiga (unless you've a port of /bin/sh, and I'm sure we'd all
- like to hear about it if you do). If you feel a need to perform
- such a precise test, you can probably figure out how by reading it.
- - Amiga SOX now uses <stdarg.h>; if your compiler doesn't have this,
- find something that fully supports varargs. You'll have to make
- the necessary changes yourself in sox.c for non-SAS varargs.
- - I have supplied a number of scripts for the DOS shell, and scripts
- and aliases for U.D.Mueller's csh, to make SOX conversions easier.
- See the Manifest below for more information.
-
- And, regarding the Sound Tools library and its documentation:
-
- - On the current Unix version of Sound Tools, the library is named
- "libst.a". Some old documentation refers to it as "libsk.a".
- For the Amiga, replace any occurrence of either of these words
- with "libst.lib", the name of the Amiga library.
-
-
- --------
- MANIFEST
- --------
- README.amiga Notes on Amiga port (this file)
- Amiga/Maker AmigaDOS shell script to compile SOX/Sound Tools
- Amiga/scripts/csh/* See soxscripts.doc.
- Amiga/scripts/dos/* See soxscripts.doc.
- Amiga/scripts/soxscripts.doc
- Documentation on my shell scripts/aliases for easy
- specific conversions.
- Amiga/sox.nro Modified troff manual for Amiga nroff
- Amiga/st.nro Modified troff manual for Amiga nroff
- bin/libst.lib Sound Tools compiler library, non-FPU version
- bin/libst881.lib Sound Tools compiler library, FPU version
- bin/sox Amiga Sound Exchange, non-FPU version
- bin/sox.cat Original Unix SOX manual, (ANSI format)
- bin/sox881 Amiga Sound Exchange, FPU version
- bin/st.cat Original Unix Sound Tools Library manual (ANSI)
- src/*.c C source code for Sound Tools kit and SOX
- src/*.h C header files for ST and SOX
- src/INSTALL How to compile/install Unix SOX
- src/Makefile.amiga Makefile for Amiga version of ST
- src/Makefile.unix Original Unix Makefile
- src/README Original Sound Tools README file
- src/sox.man Original Unix SOX manual, (troff format)
- src/st.man Original Unix Sound Tools Library manual (troff)
- src/TODO Things to be done for original Unix distribution
-
- - Amiga/scripts/*, bin/*, and README.amiga are found in the archive
- "amisox20bin.lha".
-
- - Amiga/Maker, Amiga/*.nro, src/*, and README.amiga are found in the
- archive "amisox20src.lha".
-
- ----------
- LAST NOTES
- ----------
- Some channel conversions on IFF-8SVX files require the creation of
- a temporary file which by default is written to the t: logical
- device. If you perform any of these conversions, be sure you have
- enough free store in t: for such a file.
-
- The hacked temp file handler doesn't know how to kill its children.
- Any advice would be appreciated.
-
- The FPU version of the Sound Tools library, libst881.lib, must be
- linked with a 68881/2 library to resolve math coprocessor calls.
- For Lattice/SAS C, use lib:lcm881.lib. This is handled by the
- Makefile.amiga, but you should know in case something blows up.
-
- Some of the .c files compile with type warnings, but the binaries
- seem to work fine. If you have any trouble, please let me know.
- All redefinitions have been ignored so as to limit changes to the
- code.
-
- Not all of the type identifiers are immediately obvious; for example,
- the type spec for a ulaw sound is "-t .au", rather than "-t ulaw".
- You can find all of the type specs buried inside the file
- "handlers.c"; alternatively, check the file TYPES for a list of types
- and their corresponding suffixes. I just decided to write this.
-
- As with the original Sound Tools package, the Amiga SOX and Sound
- Tools Library are freely distributable, but the original code is
- copyrighted by Lance Norskog. Amiga modifications are freely
- distributable and modifiable ONLY outside of any change to SOX; any
- suggested changes should be sent to me directly at one of the
- addresses below. See the file "README" for the details on SOX code
- rights and restrictions. See individual driver modules for
- copyright restrictions/permissions/ownership on the type handlers.
-
- Finally, I suggest that, whenever possible, you use Mike Cramer's
- SoundZAP for XXX->IFF conversions; it's generally much faster. The
- only time I can really justify using SOX is for effects other than
- rate changes and for conversions to types other than IFF.
-
- ----------------------
- CREDITS & AUTHOR STUFF
- ----------------------
- Thanks to caw@miroc.Chi.IL.US (Christopher A. Wichura) for help on
- a few problems I had with the Amiga's lack of certain functions,
- and to psd1@midway.uchicago.edu (Pratik S. Dave) for the idea of the
- shell scripts/aliases.
-
- Please contact me if you have any ideas on bringing Amiga SOX up to
- the level of its Unix/DOS counterparts. I may be reached at:
-
- David Champion Internet E-Mail:
- 5752 S. Maryland Ave. Apt. 1
- Chicago, IL 60637 dgc3@midway.uchicago.edu
- U.S.A. champion@tira.uchicago.edu
- (yes, I've moved again...)
-
- Share and enjoy.
-